/*
 * Copyright (c) 2020 - present, Inspur Genersoft Co., Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.inspur.edp.cef.generator.coreGenerator.base.accessorgen.property;

import com.inspur.edp.cef.api.message.CefException;
import com.inspur.edp.cef.generator.common.MediatePropertyInfo;
import com.inspur.edp.cef.generator.coreGenerator.base.entitygen.property.DynamicPropSetPropertyGenerator;
import com.inspur.edp.cef.generator.overall.GeneratorUtil;
import org.eclipse.jdt.core.dom.*;

public class DynamicPropAcsPropertyGenerator extends DynamicPropSetPropertyGenerator {

  public DynamicPropAcsPropertyGenerator(MediatePropertyInfo propertyInfo) {
    super(propertyInfo);
  }

  @Override
  protected Block buildGetMethodBody() {
    Block block = ast.newBlock();
    ReturnStatement returnStatement = ast.newReturnStatement();
    returnStatement.setExpression(ast.newSimpleName(getFieldName()));
    block.statements().add(returnStatement);
    return block;
  }

  @Override
  protected Block buildSetMethodBody() {
    addImport(CefException.class.getTypeName());
    Block block = ast.newBlock();
    ThrowStatement throwStatement = GeneratorUtil.getThrowStatement(ast,null);
//    ClassInstanceCreation classInstanceCreation = ast.newClassInstanceCreation();
//    SetExceptionCode setExceptionCode =new SetExceptionCode();
//
//    setExceptionCode.setClassInstanceCreation(classInstanceCreation,ast,"","");
//    classInstanceCreation.setType(new TypeInfo(RuntimeException.class).getType(ast));
//    throwStatement.setExpression(classInstanceCreation);
    block.statements().add(throwStatement);
    return block;
  }
}
